<?xml version="1.0"?>
<doc>
    <assembly>
        <name>MouseKeyboardActivityMonitor</name>
    </assembly>
    <members>
        <member name="T:MouseKeyboardActivityMonitor.Controls.HookType">
            <summary>
            Indicates which hooks to listen to application or global.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.Controls.HookType.Application">
            <summary>
            Only events inside the application are monitored and fired.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.Controls.HookType.Global">
            <summary>
            All events system wide are monitored and fired.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider">
            <summary>
            This component monitors Application or Global input, depending on 
            <see cref="P:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.Enabled"/> and provides appropriate
            events.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.#ctor">
            <summary>
            Initializes a new instance of <see cref="T:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider"/>
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.RaiseEventOnUIThread(System.Delegate,System.EventArgs)">
            <summary>
            
            </summary>
            <param name="inputEvent"></param>
            <param name="e"></param>
            <remarks>
            Modified from http://stackoverflow.com/questions/1698889/raise-events-in-net-on-the-main-ui-thread
            </remarks>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.Enabled">
            <summary>
            Gets or Sets the enabled status of the component.
            </summary>
            <value>
            True - The component is presently activated and will fire events.
            <para>
            False - The component is not active and will not fire events.
            </para>
            </value>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.HookType">
            <summary>
             Indicates which hooks to listen to application or global.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.CanRaiseEvents">
            <summary>
            This component raises events. The value is always true.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseMove">
            <summary>
            Activated when the user moves the mouse. 
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseClick">
            <summary>
            Activated upon a single click of the mouse.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseDown">
            <summary>
            Activated when the user presses a mouse button.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseUp">
            <summary>
            Activated when the user releases a mouse button.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseDoubleClick">
            <summary>
            Activated when the user double-clicks with the mouse.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseMoveExt">
            <summary>
            Activated when the user moves the mouse. 
            </summary>
            <remarks>
            This event provides extended arguments of type <see cref="T:System.Windows.Forms.MouseEventArgs"/> enabling you to 
            supress further processing of mouse movement in other applications.
            </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseClickExt">
            <summary>
            Activated upon a single click of the mouse.
            </summary>
            <remarks>
            This event provides extended arguments of type <see cref="T:System.Windows.Forms.MouseEventArgs"/> enabling you to 
            supress further processing of mouse click in other applications.
            </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseDownExt">
            <summary>
            Activated when the user presses a mouse button.
            </summary>
            <remarks>
            This event provides extended arguments of type <see cref="T:System.Windows.Forms.MouseEventArgs"/> enabling you to 
            supress further processing of mouse down in other applications.
            </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.MouseWheel">
            <summary>
            Activated upon mouse scrolling.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.KeyPress">
             <summary>
             Activated when the user presses a key.
             </summary>
             <remarks>
             Key events occur in the following order: 
             <list type="number">
             <item>KeyDown</item>
             <item>KeyPress</item>
             <item>KeyUp</item>
             </list>
            The KeyPress event is not raised by noncharacter keys; however, the noncharacter keys do raise the KeyDown and KeyUp events. 
            Use the KeyChar property to sample keystrokes at run time and to consume or modify a subset of common keystrokes. 
            To handle keyboard events only in your application and not enable other applications to receive keyboard events, 
             set the KeyPressEventArgs.Handled property in your form's KeyPress event-handling method to <b>true</b>. 
             </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.KeyUp">
            <summary>
            Activated upon the release of a key.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.Controls.MouseKeyEventProvider.KeyDown">
            <summary>
            Activated when a key is pushed.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.BaseHookListener">
            <summary>
            Base class used to implement mouse or keybord hook listeners.
            It provides base methods to subscribe and unsubscribe to hooks.
            Common processing, error handling and cleanup logic.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.#ctor(MouseKeyboardActivityMonitor.WinApi.Hooker)">
            <summary>
            Base constructor of <see cref="T:MouseKeyboardActivityMonitor.BaseHookListener"/>
            </summary>
            <param name="hooker">Depending on this parameter the listener hooks either application or global keyboard events.</param>
            <remarks>
            Hooks are not active after instantiation. You need to use either <see cref="P:MouseKeyboardActivityMonitor.BaseHookListener.Enabled"/> property or call <see cref="M:MouseKeyboardActivityMonitor.BaseHookListener.Start"/> method.
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.ProcessCallback(System.Int32,System.IntPtr)">
            <summary>
            Override this method to modify logic of firing events.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.HookCallback(System.Int32,System.Int32,System.IntPtr)">
            <summary>
            A callback function which will be called every time a keyboard or mouse activity detected.
            <see cref="T:MouseKeyboardActivityMonitor.WinApi.HookCallback"/>
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.Start">
            <summary>
            Subscribes to the hook and starts firing events.
            </summary>
            <exception cref="T:System.ComponentModel.Win32Exception"></exception>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.Stop">
            <summary>
            Unsubscribes from the hook and stops firing events.
            </summary>
            <exception cref="T:System.ComponentModel.Win32Exception"></exception>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.Replace(MouseKeyboardActivityMonitor.WinApi.Hooker)">
            <summary>
            Enables you to switch from application hooks to global hooks and vice versa on the fly
            without unsubscribing from events. Component remains enabled or disabled state after this call as it was before.
            </summary>
            <param name="hooker">An AppHooker or GlobalHooker object.</param>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.GetHookId">
            <summary>
            Override to deliver correct id to be used for <see cref="M:MouseKeyboardActivityMonitor.WinApi.Hooker.SetWindowsHookEx(System.Int32,MouseKeyboardActivityMonitor.WinApi.HookCallback,System.IntPtr,System.Int32)"/> call.
            </summary>
            <returns></returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.Dispose">
            <summary>
            Release delegates, unsubscribes from hooks.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.BaseHookListener.Finalize">
            <summary>
            Unsubscribes from global hooks skiping error handling.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.BaseHookListener.HookHandle">
            <summary>
            Stores the handle to the Keyboard or Mouse hook procedure.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.BaseHookListener.HookCallbackReferenceKeeper">
            <summary>
            Keeps the reference to prevent garbage collection of delegate. See: CallbackOnCollectedDelegate http://msdn.microsoft.com/en-us/library/43yky316(v=VS.100).aspx
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.BaseHookListener.Enabled">
            <summary>
            Gets or Sets the enabled status of the Hook.
            </summary>
            <value>
            True - The Hook is presently installed, activated, and will fire events.
            <para>
            False - The Hook is not part of the hook chain, and will not fire events.
            </para>
            </value>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.KeyPressEventArgsExt">
            <summary>
             Provides extended data for the <see cref="E:MouseKeyboardActivityMonitor.KeyboardHookListener.KeyPress"/> event.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyPressEventArgsExt.#ctor(System.Char)">
            <summary>
            Initializes a new instance of the <see cref="T:MouseKeyboardActivityMonitor.KeyPressEventArgsExt"/> class.
            </summary>
            <param name="keyChar">Character corresponding to the key pressed. 0 char if represens a system or functional non char key.</param>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyPressEventArgsExt.FromRawData(System.Int32,System.IntPtr,System.Boolean)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.KeyPressEventArgsExt"/> from Windows Message parameters.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <param name="isGlobal">Specifies if the hook is local or global.</param>
            <returns>A new KeyPressEventArgsExt object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyPressEventArgsExt.FromRawDataApp(System.Int32,System.IntPtr)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.KeyPressEventArgsExt"/> from Windows Message parameters,
            based upon a local application hook.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <returns>A new KeyPressEventArgsExt object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyPressEventArgsExt.FromRawDataGlobal(System.Int32,System.IntPtr)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.KeyPressEventArgsExt"/> from Windows Message parameters,
            based upon a system-wide hook.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <returns>A new KeyPressEventArgsExt object.</returns>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.KeyPressEventArgsExt.IsNonChar">
            <summary>
            True if represents a system or functional non char key.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.KeyPressEventArgsExt.Timestamp">
            <summary>
            The system tick count of when the event occured.
            </summary> 
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Mouse.GetDoubleClickTime">
            <summary>
            The GetDoubleClickTime function retrieves the current double-click time for the mouse. A double-click is a series of two clicks of the 
            mouse button, the second occurring within a specified time after the first. The double-click time is the maximum number of 
            milliseconds that may occur between the first and second click of a double-click. 
            </summary>
            <returns>
            The return value specifies the current double-click time, in milliseconds. 
            </returns>
            <remarks>
            http://msdn.microsoft.com/en-us/library/ms646258(VS.85).aspx
            </remarks>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.MouseHookListener">
            <summary>
            This class monitors all mouse activities and provides appropriate events.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseHookListener.#ctor(MouseKeyboardActivityMonitor.WinApi.Hooker)">
            <summary>
            Initializes a new instance of <see cref="T:MouseKeyboardActivityMonitor.MouseHookListener"/>.
            </summary>
            <param name="hooker">Depending on this parameter the listener hooks either application or global mouse events.</param>
            <remarks>
            Hooks are not active after installation. You need to use either <see cref="P:MouseKeyboardActivityMonitor.BaseHookListener.Enabled"/> property or call <see cref="M:MouseKeyboardActivityMonitor.BaseHookListener.Start"/> method.
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseHookListener.ProcessCallback(System.Int32,System.IntPtr)">
            <summary>
            This method processes the data from the hook and initiates event firing.
            </summary>
            <param name="wParam">The first Windows Messages parameter.</param>
            <param name="lParam">The second Windows Messages parameter.</param>
            <returns>
            True - The hook will be passed along to other applications.
            <para>
            False - The hook will not be given to other applications, effectively blocking input.
            </para>
            </returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseHookListener.GetHookId">
            <summary>
            Returns the correct hook id to be used for <see cref="M:MouseKeyboardActivityMonitor.WinApi.Hooker.SetWindowsHookEx(System.Int32,MouseKeyboardActivityMonitor.WinApi.HookCallback,System.IntPtr,System.Int32)"/> call.
            </summary>
            <returns>WH_MOUSE (0x07) or WH_MOUSE_LL (0x14) constant.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseHookListener.Dispose">
            <summary>
            Release delegates, unsubscribes from hooks.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseMove">
            <summary>
            Occurs when the mouse pointer is moved.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseMoveExt">
            <summary>
            Occurs when the mouse pointer is moved.
            </summary>
            <remarks>
            This event provides extended arguments of type <see cref="T:System.Windows.Forms.MouseEventArgs"/> enabling you to 
            supress further processing of mouse movement in other applications.
            </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseClick">
            <summary>
            Occurs when a click was performed by the mouse.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseClickExt">
            <summary>
            Occurs when a click was performed by the mouse.
            </summary>
            <remarks>
            This event provides extended arguments of type <see cref="T:System.Windows.Forms.MouseEventArgs"/> enabling you to 
            supress further processing of mouse click in other applications.
            </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseDown">
            <summary>
            Occurs when the mouse a mouse button is pressed.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseDownExt">
            <summary>
            Occurs when the mouse a mouse button is pressed.
            </summary>
            <remarks>
            This event provides extended arguments of type <see cref="T:System.Windows.Forms.MouseEventArgs"/> enabling you to 
            supress further processing of mouse click in other applications.
            </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseUp">
            <summary>
            Occurs when a mouse button is released.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseWheel">
            <summary>
            Occurs when the mouse wheel moves.
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.MouseHookListener.MouseDoubleClick">
            <summary>
            Occurs when a mouse button is double-clicked.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.AppHooker">
            <summary>
            Provides methods for subscription and unsubscription to application mouse and keyboard hooks.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.Hooker">
            <summary>
            Provides base implementation of methods for subscription and unsubscription to application and/or global mouse and keyboard hooks.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Hooker.CallNextHookEx(System.Int32,System.Int32,System.Int32,System.IntPtr)">
            <summary>
            The CallNextHookEx function passes the hook information to the next hook procedure in the current hook chain. 
            A hook procedure can call this function either before or after processing the hook information. 
            </summary>
            <param name="idHook">Ignored.</param>
            <param name="nCode">[in] Specifies the hook code passed to the current hook procedure.</param>
            <param name="wParam">[in] Specifies the wParam value passed to the current hook procedure.</param>
            <param name="lParam">[in] Specifies the lParam value passed to the current hook procedure.</param>
            <returns>This value is returned by the next hook procedure in the chain.</returns>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Hooker.SetWindowsHookEx(System.Int32,MouseKeyboardActivityMonitor.WinApi.HookCallback,System.IntPtr,System.Int32)">
            <summary>
            The SetWindowsHookEx function installs an application-defined hook procedure into a hook chain. 
            You would install a hook procedure to monitor the system for certain types of events. These events 
            are associated either with a specific thread or with all threads in the same desktop as the calling thread. 
            </summary>
            <param name="idHook">
            [in] Specifies the type of hook procedure to be installed. This parameter can be one of the following values.
            </param>
            <param name="lpfn">
            [in] Pointer to the hook procedure. If the dwThreadId parameter is zero or specifies the identifier of a 
            thread created by a different process, the lpfn parameter must point to a hook procedure in a dynamic-link 
            library (DLL). Otherwise, lpfn can point to a hook procedure in the code associated with the current process.
            </param>
            <param name="hMod">
            [in] Handle to the DLL containing the hook procedure pointed to by the lpfn parameter. 
            The hMod parameter must be set to NULL if the dwThreadId parameter specifies a thread created by 
            the current process and if the hook procedure is within the code associated with the current process. 
            </param>
            <param name="dwThreadId">
            [in] Specifies the identifier of the thread with which the hook procedure is to be associated. 
            If this parameter is zero, the hook procedure is associated with all existing threads running in the 
            same desktop as the calling thread. 
            </param>
            <returns>
            If the function succeeds, the return value is the handle to the hook procedure.
            If the function fails, the return value is NULL. To get extended error information, call GetLastError.
            </returns>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Hooker.UnhookWindowsHookEx(System.Int32)">
            <summary>
            The UnhookWindowsHookEx function removes a hook procedure installed in a hook chain by the SetWindowsHookEx function. 
            </summary>
            <param name="idHook">
            [in] Handle to the hook to be removed. This parameter is a hook handle obtained by a previous call to SetWindowsHookEx. 
            </param>
            <returns>
            If the function succeeds, the return value is nonzero.
            If the function fails, the return value is zero. To get extended error information, call GetLastError.
            </returns>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp
            </remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.AppHooker.WH_MOUSE">
            <summary>
            Installs a hook procedure that monitors mouse messages. For more information, see the MouseProc hook procedure. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.AppHooker.WH_KEYBOARD">
            <summary>
            Installs a hook procedure that monitors keystroke messages. For more information, see the KeyboardProc hook procedure. 
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.AppHooker.GetCurrentThreadId">
            <summary>
            Retrieves the unmanaged thread identifier of the calling thread.
            </summary>
            <returns></returns>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.GlobalHooker">
            <summary>
            Provides methods for subscription and unsubscription to global mouse and keyboard hooks.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.GlobalHooker.WH_MOUSE_LL">
            <summary>
            Windows NT/2000/XP/Vista/7: Installs a hook procedure that monitors low-level mouse input events.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.GlobalHooker.WH_KEYBOARD_LL">
            <summary>
            Windows NT/2000/XP/Vista/7: Installs a hook procedure that monitors low-level keyboard  input events.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.MouseStruct">
            <summary>
            The <see cref="T:MouseKeyboardActivityMonitor.WinApi.MouseStruct"/> structure contains information about a mouse input event.
            </summary>
            <remarks>
            See full documentation at http://globalmousekeyhook.codeplex.com/wikipage?title=MouseStruct
            </remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.MouseStruct.Point">
            <summary>
            Specifies a Point structure that contains the X- and Y-coordinates of the cursor, in screen coordinates. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.MouseStruct.MouseData">
            <summary>
            Specifies information associated with the message.
            </summary>
            <remarks>
            The possible values are:
            <list type="bullet">
            <item>
            <description>0 - No Information</description>
            </item>
            <item>
            <description>1 - X-Button1 Click</description>
            </item>
            <item>
            <description>2 - X-Button2 Click</description>
            </item>
            <item>
            <description>120 - Mouse Scroll Away from User</description>
            </item>
            <item>
            <description>-120 - Mouse Scroll Toward User</description>
            </item>
            </list>
            </remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.MouseStruct.Timestamp">
            <summary>
            Returns a Timestamp associated with the input, in System Ticks.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.AppMouseStruct">
            <summary>
            The AppMouseStruct structure contains information about a application-level mouse input event.
            </summary>
            <remarks>
            See full documentation at http://globalmousekeyhook.codeplex.com/wikipage?title=MouseStruct
            </remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.AppMouseStruct.Point">
            <summary>
            Specifies a Point structure that contains the X- and Y-coordinates of the cursor, in screen coordinates. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.AppMouseStruct.MouseData">
            <summary>
            Specifies information associated with the message.
            </summary>
            <remarks>
            The possible values are:
            <list type="bullet">
            <item>
            <description>0 - No Information</description>
            </item>
            <item>
            <description>1 - X-Button1 Click</description>
            </item>
            <item>
            <description>2 - X-Button2 Click</description>
            </item>
            <item>
            <description>120 - Mouse Scroll Away from User</description>
            </item>
            <item>
            <description>-120 - Mouse Scroll Toward User</description>
            </item>
            </list>
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.AppMouseStruct.ToMouseStruct">
            <summary>
            Converts the current <see cref="T:MouseKeyboardActivityMonitor.WinApi.AppMouseStruct"/> into a <see cref="T:MouseKeyboardActivityMonitor.WinApi.MouseStruct"/>.
            </summary>
            <returns></returns>
            <remarks>
            The AppMouseStruct does not have a timestamp, thus one is generated at the time of this call.
            </remarks>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.KeyboardHookStruct">
            <summary>
            The KeyboardHookStruct structure contains information about a low-level keyboard input event. 
            </summary>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookstructures/cwpstruct.asp
            </remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.KeyboardHookStruct.VirtualKeyCode">
            <summary>
            Specifies a virtual-key code. The code must be a value in the range 1 to 254. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.KeyboardHookStruct.ScanCode">
            <summary>
            Specifies a hardware scan code for the key. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.KeyboardHookStruct.Flags">
            <summary>
            Specifies the extended-key flag, event-injected flag, context code, and transition-state flag.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.KeyboardHookStruct.Time">
            <summary>
            Specifies the Time stamp for this message.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.KeyboardHookStruct.ExtraInfo">
            <summary>
            Specifies extra information associated with the message. 
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.KeyEventArgsExt">
            <summary>
            Provides extended argument data for the <see cref="E:MouseKeyboardActivityMonitor.KeyboardHookListener.KeyDown"/> or <see cref="E:MouseKeyboardActivityMonitor.KeyboardHookListener.KeyUp"/> event.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyEventArgsExt.#ctor(System.Windows.Forms.Keys)">
            <summary>
            Initializes a new instance of the <see cref="T:MouseKeyboardActivityMonitor.KeyEventArgsExt"/> class.
            </summary>
            <param name="keyData"></param>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyEventArgsExt.FromRawData(System.Int32,System.IntPtr,System.Boolean)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.KeyEventArgsExt"/> from Windows Message parameters.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <param name="isGlobal">Specifies if the hook is local or global.</param>
            <returns>A new KeyEventArgsExt object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyEventArgsExt.FromRawDataApp(System.Int32,System.IntPtr)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.KeyEventArgsExt"/> from Windows Message parameters, based upon
            a local application hook.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <returns>A new KeyEventArgsExt object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyEventArgsExt.FromRawDataGlobal(System.Int32,System.IntPtr)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.KeyEventArgsExt"/> from Windows Message parameters, based upon
            a system-wide hook.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <returns>A new KeyEventArgsExt object.</returns>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.KeyEventArgsExt.Timestamp">
            <summary>
            The system tick count of when the event occured.
            </summary> 
        </member>
        <member name="P:MouseKeyboardActivityMonitor.KeyEventArgsExt.IsKeyDown">
            <summary>
            True if event singnals key down..
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.KeyEventArgsExt.IsKeyUp">
            <summary>
            True if event singnals key up.
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.Point">
            <summary>
            The Point structure defines the X- and Y- coordinates of a point. 
            </summary>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/rectangl_0tiq.asp
            </remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Point.X">
            <summary>
            Specifies the X-coordinate of the point. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Point.Y">
            <summary>
            Specifies the Y-coordinate of the point. 
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.WinApi.HookCallback">
            <summary>
            The CallWndProc hook procedure is an application-defined or library-defined callback 
            function used with the SetWindowsHookEx function. The HOOKPROC type defines a pointer 
            to this callback function. CallWndProc is a placeholder for the application-defined 
            or library-defined function name.
            </summary>
            <param name="nCode">
            [in] Specifies whether the hook procedure must process the message. 
            If nCode is HC_ACTION, the hook procedure must process the message. 
            If nCode is less than zero, the hook procedure must pass the message to the 
            CallNextHookEx function without further processing and must return the 
            value returned by CallNextHookEx.
            </param>
            <param name="wParam">
            [in] Specifies whether the message was sent by the current thread. 
            If the message was sent by the current thread, it is nonzero; otherwise, it is zero. 
            </param>
            <param name="lParam">
            [in] Pointer to a CWPSTRUCT structure that contains details about the message. 
            </param>
            <returns>
            If nCode is less than zero, the hook procedure must return the value returned by CallNextHookEx. 
            If nCode is greater than or equal to zero, it is highly recommended that you call CallNextHookEx 
            and return the value it returns; otherwise, other applications that have installed WH_CALLWNDPROC 
            hooks will not receive hook notifications and may behave incorrectly as a result. If the hook 
            procedure does not call CallNextHookEx, the return value should be zero. 
            </returns>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/callwndproc.asp
            </remarks>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.KeyboardHookListener">
            <summary>
            This class monitors all keyboard activities and provides appropriate events.
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyboardHookListener.#ctor(MouseKeyboardActivityMonitor.WinApi.Hooker)">
            <summary>
            Initializes a new instance of <see cref="T:MouseKeyboardActivityMonitor.KeyboardHookListener"/>.
            </summary>
            <param name="hooker">Depending on this parameter the listener hooks either application or global keyboard events.</param>
            <remarks>Hooks are not active after instantiation. You need to use either <see cref="P:MouseKeyboardActivityMonitor.BaseHookListener.Enabled"/> property or call <see cref="M:MouseKeyboardActivityMonitor.BaseHookListener.Start"/> method.</remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyboardHookListener.ProcessCallback(System.Int32,System.IntPtr)">
            <summary>
            This method processes the data from the hook and initiates event firing.
            </summary>
            <param name="wParam">The first Windows Messages parameter.</param>
            <param name="lParam">The second Windows Messages parameter.</param>
            <returns>
            True - The hook will be passed along to other applications.
            <para>
            False - The hook will not be given to other applications, effectively blocking input.
            </para>
            </returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyboardHookListener.GetHookId">
            <summary>
            Returns the correct hook id to be used for <see cref="M:MouseKeyboardActivityMonitor.WinApi.Hooker.SetWindowsHookEx(System.Int32,MouseKeyboardActivityMonitor.WinApi.HookCallback,System.IntPtr,System.Int32)"/> call.
            </summary>
            <returns>WH_KEYBOARD (0x02) or WH_KEYBOARD_LL (0x13) constant.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.KeyboardHookListener.Dispose">
            <summary>
            Release delegates, unsubscribes from hooks.
            </summary>
            <filterpriority>2</filterpriority>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.KeyboardHookListener.KeyDown">
            <summary>
            Occurs when a key is preseed. 
            </summary>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.KeyboardHookListener.KeyPress">
             <summary>
             Occurs when a key is pressed.
             </summary>
             <remarks>
             Key events occur in the following order: 
             <list type="number">
             <item>KeyDown</item>
             <item>KeyPress</item>
             <item>KeyUp</item>
             </list>
            The KeyPress event is not raised by noncharacter keys; however, the noncharacter keys do raise the KeyDown and KeyUp events. 
            Use the KeyChar property to sample keystrokes at run time and to consume or modify a subset of common keystrokes. 
            To handle keyboard events only in your application and not enable other applications to receive keyboard events, 
            set the <see cref="P:System.Windows.Forms.KeyPressEventArgs.Handled"/> property in your form's KeyPress event-handling method to <b>true</b>. 
             </remarks>
        </member>
        <member name="E:MouseKeyboardActivityMonitor.KeyboardHookListener.KeyUp">
            <summary>
            Occurs when a key is released. 
            </summary>
        </member>
        <member name="T:MouseKeyboardActivityMonitor.MouseEventExtArgs">
            <summary>
            Provides extended data for the MouseClickExt and MouseMoveExt events. 
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseEventExtArgs.FromRawData(System.Int32,System.IntPtr,System.Boolean)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.MouseEventExtArgs"/> from Windows Message parameters.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <param name="isGlobal">Specifies if the hook is local or global.</param>
            <returns>A new MouseEventExtArgs object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseEventExtArgs.FromRawDataApp(System.Int32,System.IntPtr)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.MouseEventExtArgs"/> from Windows Message parameters, 
            based upon a local application hook.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <returns>A new MouseEventExtArgs object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseEventExtArgs.FromRawDataGlobal(System.Int32,System.IntPtr)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.MouseEventExtArgs"/> from Windows Message parameters, 
            based upon a system-wide global hook.
            </summary>
            <param name="wParam">The first Windows Message parameter.</param>
            <param name="lParam">The second Windows Message parameter.</param>
            <returns>A new MouseEventExtArgs object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseEventExtArgs.FromRawDataUniversal(System.Int32,MouseKeyboardActivityMonitor.WinApi.MouseStruct)">
            <summary>
            Creates <see cref="T:MouseKeyboardActivityMonitor.MouseEventExtArgs"/> from relevant mouse data. 
            </summary>
            <param name="wParam">First Windows Message parameter.</param>
            <param name="mouseInfo">A MouseStruct containing information from which to contruct MouseEventExtArgs.</param>
            <returns>A new MouseEventExtArgs object.</returns>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.MouseEventExtArgs.#ctor(System.Windows.Forms.MouseButtons,System.Int32,MouseKeyboardActivityMonitor.WinApi.Point,System.Int32,System.Int32,System.Boolean,System.Boolean)">
            <summary>
            Initializes a new instance of the <see cref="T:MouseKeyboardActivityMonitor.MouseEventExtArgs"/> class. 
            </summary>
            <param name="buttons">One of the MouseButtons values indicating which mouse button was pressed.</param>
            <param name="clicks">The number of times a mouse button was pressed.</param>
            <param name="point">The x and y -coordinate of a mouse click, in pixels.</param>
            <param name="delta">A signed count of the number of detents the wheel has rotated.</param>
            <param name="timestamp">The system tick count when the event occured.</param>
            <param name="isMouseKeyDown">True if event singnals mouse button down.</param>
            <param name="isMouseKeyUp">True if event singnals mouse button up.</param>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.Handled">
            <summary>
            Set this property to <b>true</b> inside your event handler to prevent further processing of the event in other applications.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.WheelScrolled">
            <summary>
            True if event contains information about wheel scroll.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.Clicked">
            <summary>
            True if event signals a click. False if it was only a move or wheel scroll.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.IsMouseKeyDown">
            <summary>
            True if event singnals mouse button down.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.IsMouseKeyUp">
            <summary>
            True if event singnals mouse button up.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.Timestamp">
            <summary>
            The system tick count of when the event occured.
            </summary>
        </member>
        <member name="P:MouseKeyboardActivityMonitor.MouseEventExtArgs.Point">
            <summary>
            
            </summary>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Keyboard.ToAscii(System.Int32,System.Int32,System.Byte[],System.Byte[],System.Int32)">
            <summary>
            The ToAscii function translates the specified virtual-key code and keyboard 
            state to the corresponding character or characters. The function translates the code 
            using the input language and physical keyboard layout identified by the keyboard layout handle.
            </summary>
            <param name="uVirtKey">
            [in] Specifies the virtual-key code to be translated. 
            </param>
            <param name="uScanCode">
            [in] Specifies the hardware scan code of the key to be translated. 
            The high-order bit of this value is set if the key is up (not pressed). 
            </param>
            <param name="lpbKeyState">
            [in] Pointer to a 256-byte array that contains the current keyboard state. 
            Each element (byte) in the array contains the state of one key. 
            If the high-order bit of a byte is set, the key is down (pressed). 
            The low bit, if set, indicates that the key is toggled on. In this function, 
            only the toggle bit of the CAPS LOCK key is relevant. The toggle state 
            of the NUM LOCK and SCROLL LOCK keys is ignored.
            </param>
            <param name="lpwTransKey">
            [out] Pointer to the buffer that receives the translated character or characters. 
            </param>
            <param name="fuState">
            [in] Specifies whether a menu is active. This parameter must be 1 if a menu is active, or 0 otherwise. 
            </param>
            <returns>
            If the specified key is a dead key, the return value is negative. Otherwise, it is one of the following values. 
            Value Meaning 
            0 The specified virtual key has no translation for the current state of the keyboard. 
            1 One character was copied to the buffer. 
            2 Two characters were copied to the buffer. This usually happens when a dead-key character 
            (accent or diacritic) stored in the keyboard layout cannot be composed with the specified 
            virtual key to form a single character. 
            </returns>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/toascii.asp
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Keyboard.GetKeyboardState(System.Byte[])">
            <summary>
            The GetKeyboardState function copies the status of the 256 virtual keys to the 
            specified buffer. 
            </summary>
            <param name="pbKeyState">
            [in] Pointer to a 256-byte array that contains keyboard key states. 
            </param>
            <returns>
            If the function succeeds, the return value is nonzero.
            If the function fails, the return value is zero. To get extended error information, call GetLastError. 
            </returns>
            <remarks>
            http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputfunctions/toascii.asp
            </remarks>
        </member>
        <member name="M:MouseKeyboardActivityMonitor.WinApi.Keyboard.GetKeyState(System.Int32)">
             <summary>
             The GetKeyState function retrieves the status of the specified virtual key. The status specifies whether the key is up, down, or toggled 
             (on, off—alternating each time the key is pressed). 
             </summary>
             <param name="vKey">
             [in] Specifies a virtual key. If the desired virtual key is a letter or digit (A through Z, a through z, or 0 through 9), nVirtKey must be set to the ASCII value of that character. For other keys, it must be a virtual-key code. 
             </param>
             <returns>
             The return value specifies the status of the specified virtual key, as follows: 
            If the high-order bit is 1, the key is down; otherwise, it is up.
            If the low-order bit is 1, the key is toggled. A key, such as the CAPS LOCK key, is toggled if it is turned on. The key is off and untoggled if the low-order bit is 0. A toggle key's indicator light (if any) on the keyboard will be on when the key is toggled, and off when the key is untoggled.
             </returns>
             <remarks>http://msdn.microsoft.com/en-us/library/ms646301.aspx</remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_MOUSEMOVE">
            <summary>
            The WM_MOUSEMOVE message is posted to a window when the cursor moves. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_LBUTTONDOWN">
            <summary>
            The WM_LBUTTONDOWN message is posted when the user presses the left mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_RBUTTONDOWN">
            <summary>
            The WM_RBUTTONDOWN message is posted when the user presses the right mouse button
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_MBUTTONDOWN">
            <summary>
            The WM_MBUTTONDOWN message is posted when the user presses the middle mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_LBUTTONUP">
            <summary>
            The WM_LBUTTONUP message is posted when the user releases the left mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_RBUTTONUP">
            <summary>
            The WM_RBUTTONUP message is posted when the user releases the right mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_MBUTTONUP">
            <summary>
            The WM_MBUTTONUP message is posted when the user releases the middle mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_LBUTTONDBLCLK">
            <summary>
            The WM_LBUTTONDBLCLK message is posted when the user double-clicks the left mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_RBUTTONDBLCLK">
            <summary>
            The WM_RBUTTONDBLCLK message is posted when the user double-clicks the right mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_MBUTTONDBLCLK">
            <summary>
            The WM_RBUTTONDOWN message is posted when the user presses the right mouse button 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_MOUSEWHEEL">
            <summary>
            The WM_MOUSEWHEEL message is posted when the user presses the mouse wheel. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_XBUTTONDOWN">
            <summary>
            The WM_XBUTTONDOWN message is posted when the user presses the first or second X mouse
            button. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_XBUTTONUP">
            <summary>
            The WM_XBUTTONUP message is posted when the user releases the first or second X  mouse
            button.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_XBUTTONDBLCLK">
            <summary>
            The WM_XBUTTONDBLCLK message is posted when the user double-clicks the first or second
            X mouse button.
            </summary>
            <remarks>Only windows that have the CS_DBLCLKS style can receive WM_XBUTTONDBLCLK messages.</remarks>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_KEYDOWN">
            <summary>
            The WM_KEYDOWN message is posted to the window with the keyboard focus when a nonsystem 
            key is pressed. A nonsystem key is a key that is pressed when the ALT key is not pressed.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_KEYUP">
            <summary>
            The WM_KEYUP message is posted to the window with the keyboard focus when a nonsystem 
            key is released. A nonsystem key is a key that is pressed when the ALT key is not pressed, 
            or a keyboard key that is pressed when a window has the keyboard focus.
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_SYSKEYDOWN">
            <summary>
            The WM_SYSKEYDOWN message is posted to the window with the keyboard focus when the user 
            presses the F10 key (which activates the menu bar) or holds down the ALT key and then 
            presses another key. It also occurs when no window currently has the keyboard focus; 
            in this case, the WM_SYSKEYDOWN message is sent to the active window. The window that 
            receives the message can distinguish between these two contexts by checking the context 
            code in the lParam parameter. 
            </summary>
        </member>
        <member name="F:MouseKeyboardActivityMonitor.WinApi.Messages.WM_SYSKEYUP">
            <summary>
            The WM_SYSKEYUP message is posted to the window with the keyboard focus when the user 
            releases a key that was pressed while the ALT key was held down. It also occurs when no 
            window currently has the keyboard focus; in this case, the WM_SYSKEYUP message is sent 
            to the active window. The window that receives the message can distinguish between 
            these two contexts by checking the context code in the lParam parameter. 
            </summary>
        </member>
    </members>
</doc>
